package tenth.泛型接口.泛型接口的两种实现方式;

// 直接在接口中指定具体类型
interface Info1<T> {
    public T getVar();
}

class Info1Impl implements Info1<String> {   // 定义泛型接口的子类，指定类型为String
    private String var;

    public Info1Impl(String var) {
        this.var = var;
    }

    @Override
    public String getVar() {
        return var;
    }

    public void setVar(String var) {
        this.var = var;
    }
}

public class 定义子类方式2 {
    public static void main(String[] args) {
        //使用泛型接口的子类
        Info1<String> info = null;
        info = new Info1Impl("奔跑吧兄弟！");
        System.out.println("内容："+info.getVar());
    }
}
/**
 * 上面程序在实例化子类对象的时候不用再指定泛型，因为在声明子类的时候已经明确的指定了具体的类型
 *
 * 提示：在JDK1.5之后，很多的接口都加入了泛型的支持，因此在使用这些接口的时候防止安全警告信息的出现，都要指定具体的泛型类型。
 */
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=60647:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 tenth.泛型接口.泛型接口的两种实现方式.定义子类方式2
内容：奔跑吧兄弟！

Process finished with exit code 0

 */